package repositories

import (
	"book-management-system/models"
	"gorm.io/gorm"
)

// 全局数据库对象
var DB *gorm.DB

// SetDatabase 设置数据库对象
func SetDatabase(db *gorm.DB) {
	DB = db
}

// GetAllBooks 获取所有图书
func GetAllBooks() ([]models.Book, error) {
	var books []models.Book
	if err := DB.Find(&books).Error; err != nil {
		return nil, err
	}
	return books, nil
}

// GetBookByID 根据图书 ID 获取图书
func GetBookByID(tx *gorm.DB, id string) (*models.Book, error) {
	var book models.Book
	if err := tx.First(&book, id).Error; err != nil {
		return nil, err
	}
	return &book, nil
}

// CreateBook 创建新图书
func CreateBook(book *models.Book) error {
	return DB.Create(book).Error
}

// UpdateBook 更新图书信息
func UpdateBook(tx *gorm.DB, book *models.Book) error {
	return tx.Save(book).Error
}

// DeleteBook 删除图书
func DeleteBook(id string) error {
	return DB.Delete(&models.Book{}, id).Error
}
